package org.java.user.domain;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.Date;


// 继承映射3种方式：
// 1.所有实体在一个表，SINGLE_TABLE
// 2.共用的字段在一个表，不同的字段在各自的表，JOINED
// 3.每个实体一张表，TABLE_PER_CLASS
//@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Entity
@Getter
@Setter
public class DestroyedUser {

    @Id
    // 使用Hibernate的UUID2算法生成主键的值，适合在分布式环境中使用
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    // 使用前面定义的UUID2算法
    @GeneratedValue(generator = "uuid2")
    @Column(length = 36)
    private String id;
    @Column(length = 36)
    private String userId;
    // 姓名
    private String name;
    // loginName、mobilePhone、email都是唯一键，不能重复
    private String loginName;
    // 手机号码
    private String mobilePhone;
    // 电子邮件
    private String email;
    private String password;
    // 是激活
    private boolean enabled = true;
    // 账号未锁定
    private boolean accountNonLocked = true;
    // 密码过期时间，如果为null则表示永不过期
    private Date passwordExpireTime;
    // 账户过期时间，如果为null则表示永不过期
    private Date accountExpireTime;
}


